package model

import (
	"blog/utils"
	"fmt"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
	"time"
)
/**
初始化数据库链接
 */
var (
	db *gorm.DB
	err error
)

func InitDb(){
	db,err = gorm.Open(utils.Db,fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local",utils.DbUsername,utils.DbPassword,utils.DbHost,utils.DbPort,utils.DbName))
	if err!=nil {
		panic(err)
	}

	//全局禁用表名复数,表名默认为复数+s
	db.SingularTable(true)

	//db.DB()获取通用数据库对象`*sql.DB`以使用其函数
	//设置最大空闲链接数
	db.DB().SetMaxIdleConns(10)
	//设置数据库的最大链接数
	db.DB().SetMaxOpenConns(100)
	// SetConnMaxLifetiment 设置连接的最大可复用时间。
	db.DB().SetConnMaxLifetime(time.Second * 10)

	//自动迁移:自动迁移 只会 创建表、缺失的列、缺失的索引
	db.AutoMigrate(&User{},&Article{},&ArticleCategory{})
}
